Autogenerated HTML docs for v1.6.2-rc0-90-g0753 
diff --git a/RelNotes-1.6.2.txt b/RelNotes-1.6.2.txt index 6ed3159..d3e9583 100644 --- a/RelNotes-1.6.2.txt +++ b/RelNotes-1.6.2.txt 
@@ -10,9 +10,17 @@  push running this release will issue a big warning when the  configuration variable is missing. Please refer to:   + http://git.or.cz/gitwiki/GitFaq#non-bare  http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007   -for more details on the transition plan. +for more details on the reason why this change is needed and the +transition plan. + +For a similar reason, "git push $there :$killed" to delete the branch +$killed in a remote repository $there, if $killed branch is the current +branch pointed at by its HEAD, gets a large warning. You can choose what +should happen upon such a push by setting the configuration variable +receive.denyDeleteCurrent in the receiving repository.      Updates since v1.6.1 @@ -40,8 +48,17 @@    * @{-1} is a way to refer to the last branch you were on. This is  accepted not only where an object name is expected, but anywhere - a branch name is expected. E.g. "git branch --track mybranch @{-1}" - "git rev-parse --symbolic-full-name @{-1}". + a branch name is expected and acts as if you typed the branch name. + E.g. "git branch --track mybranch @{-1}", "git merge @{-1}", and + "git rev-parse --symbolic-full-name @{-1}" would work as expected. + +* When refs/remotes/origin/HEAD points at a remote tracking branch that + has been pruned away, many git operations issued warning when they + internally enumerated the refs. We now warn only when you say "origin" + to refer to that pruned branch. + +* The location of .mailmap file can be configured, and its file format was + enhanced to allow mapping an incorrect e-mail field as well.    * "git add -p" learned 'g'oto action to jump directly to a hunk.   @@ -91,6 +108,9 @@  * "git fsck" now checks loose objects in alternate object stores, instead  of misreporting them as missing.   +* "git gc --prune" was resurrected to allow "git gc --no-prune" and + giving non-default expiration period e.g. "git gc --prune=now". +  * "git grep -w" and "git grep" for fixed strings have been optimized.    * "git mergetool" learned -y(--no-prompt) option to disable prompting. @@ -102,6 +122,8 @@  "git checkout" switches branches, taking the local changes while  switching to another commit.   +* "git submodule update" learned --no-fetch option. +  * "git tag" learned --contains that works the same way as the same option  from "git branch".   @@ -140,6 +162,6 @@    --  exec >/var/tmp/1 -O=v1.6.1.3-371-gc19923a +v1.6.2-rc0-89-gf7a2bdb  echo O=$(git describe master)  git shortlog --no-merges $O..master ^maint 
diff --git a/config.txt b/config.txt index 1806a60..f5152c5 100644 --- a/config.txt +++ b/config.txt 
@@ -1019,6 +1019,14 @@ 	Tools like linkgit:git-log[1] or linkgit:git-whatchanged[1], which 	normally hide the root commit will now show it. True by default.   +mailmap.file:: +	The location of an augmenting mailmap file. The default +	mailmap, located in the root of the repository, is loaded +	first, then the mailmap file pointed to by this variable. +	The location of the mailmap file may be in a repository +	subdirectory, or somewhere outside of the repository itself. +	See linkgit:git-shortlog[1] and linkgit:git-blame[1]. +  man.viewer:: 	Specify the programs that may be used to display help in the 	'man' format. See linkgit:git-help[1]. 
diff --git a/git-blame.html b/git-blame.html index b8b0237..8cc8726 100644 --- a/git-blame.html +++ b/git-blame.html 
@@ -744,6 +744,81 @@  </li>   </ol></div>   </div>  +<h2 id="_mapping_authors">MAPPING AUTHORS</h2>  +<div class="sectionbody">  +<div class="para"><p>If the file <tt>.mailmap</tt> exists at the toplevel of the repository, or at  +the location pointed to by the mailmap.file configuration option, it  +is used to map author and committer names and email addresses to  +canonical real names and email addresses.</p></div>  +<div class="para"><p>In the simple form, each line in the file consists of the canonical  +real name of an author, whitespace, and an email address used in the  +commit (enclosed by <em>&lt;</em> and <em>&gt;</em>) to map to the name. Thus, looks like  +this</p></div>  +<div class="literalblock">  +<div class="content">  +<pre><tt>Proper Name &lt;commit@email.xx&gt;</tt></pre>  +</div></div>  +<div class="para"><p>The more complex forms are</p></div>  +<div class="literalblock">  +<div class="content">  +<pre><tt>&lt;proper@email.xx&gt; &lt;commit@email.xx&gt;</tt></pre>  +</div></div>  +<div class="para"><p>which allows mailmap to replace only the email part of a commit, and</p></div>  +<div class="literalblock">  +<div class="content">  +<pre><tt>Proper Name &lt;proper@email.xx&gt; &lt;commit@email.xx&gt;</tt></pre>  +</div></div>  +<div class="para"><p>which allows mailmap to replace both the name and the email of a  +commit matching the specified commit email address, and</p></div>  +<div class="literalblock">  +<div class="content">  +<pre><tt>Proper Name &lt;proper@email.xx&gt; Commit Name &lt;commit@email.xx&gt;</tt></pre>  +</div></div>  +<div class="para"><p>which allows mailmap to replace both the name and the email of a  +commit matching both the specified commit name and email address.</p></div>  +<div class="para"><p>Example 1: Your history contains commits by two authors, Jane  +and Joe, whose names appear in the repository under several forms:</p></div>  +<div class="listingblock">  +<div class="content">  +<pre><tt>Joe Developer &lt;joe@example.com&gt;  +Joe R. Developer &lt;joe@example.com&gt;  +Jane Doe &lt;jane@example.com&gt;  +Jane Doe &lt;jane@laptop.(none)&gt;  +Jane D. &lt;jane@desktop.(none)&gt;</tt></pre>  +</div></div>  +<div class="para"><p>Now suppose that Joe wants his middle name initial used, and Jane  +prefers her family name fully spelled out. A proper <tt>.mailmap</tt> file  +would look like:</p></div>  +<div class="listingblock">  +<div class="content">  +<pre><tt>Jane Doe &lt;jane@desktop.(none)&gt;  +Joe R. Developer &lt;joe@example.com&gt;</tt></pre>  +</div></div>  +<div class="para"><p>Note how we don't need an entry for &lt;jane@laptop.(none)&gt;, because the  +real name of that author is correct already.</p></div>  +<div class="para"><p>Example 2: Your repository contains commits from the following  +authors:</p></div>  +<div class="listingblock">  +<div class="content">  +<pre><tt>nick1 &lt;bugs@company.xx&gt;  +nick2 &lt;bugs@company.xx&gt;  +nick2 &lt;nick2@company.xx&gt;  +santa &lt;me@company.xx&gt;  +claus &lt;me@company.xx&gt;  +CTO &lt;cto@coompany.xx&gt;</tt></pre>  +</div></div>  +<div class="para"><p>Then, you might want a <tt>.mailmap</tt> file looking like:</p></div>  +<div class="listingblock">  +<div class="content">  +<pre><tt>&lt;cto@company.xx&gt; &lt;cto@coompany.xx&gt;  +Some Dude &lt;some@dude.xx&gt; nick1 &lt;bugs@company.xx&gt;  +Other Author &lt;other@author.xx&gt; nick2 &lt;bugs@company.xx&gt;  +Other Author &lt;other@author.xx&gt; &lt;nick2@company.xx&gt;  +Santa Claus &lt;santa.claus@northpole.xx&gt; &lt;me@company.xx&gt;</tt></pre>  +</div></div>  +<div class="para"><p>Use hash <em>#</em> for comments that are either on their own line, or after  +the email address.</p></div>  +</div>   <h2 id="_see_also">SEE ALSO</h2>   <div class="sectionbody">   <div class="para"><p><a href="git-annotate.html">git-annotate(1)</a></p></div>  @@ -758,7 +833,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2009-02-14 08:18:03 UTC  +Last updated 2009-02-15 10:37:52 UTC   </div>   </div>   </body>  
diff --git a/git-blame.txt b/git-blame.txt index fba374d..6999cf2 100644 --- a/git-blame.txt +++ b/git-blame.txt 
@@ -184,6 +184,12 @@  commit commentary), a blame viewer won't ever care.     +MAPPING AUTHORS +--------------- + +include::mailmap.txt[] + +  SEE ALSO  --------  linkgit:git-annotate[1] 
diff --git a/git-config.html b/git-config.html index 3c882da..df9b89b 100644 --- a/git-config.html +++ b/git-config.html 
@@ -2407,6 +2407,19 @@  </p>   </dd>   <dt>  +mailmap.file  +</dt>  +<dd>  +<p>  + The location of an augmenting mailmap file. The default  + mailmap, located in the root of the repository, is loaded  + first, then the mailmap file pointed to by this variable.  + The location of the mailmap file may be in a repository  + subdirectory, or somewhere outside of the repository itself.  + See <a href="git-shortlog.html">git-shortlog(1)</a> and <a href="git-blame.html">git-blame(1)</a>.  +</p>  +</dd>  +<dt>   man.viewer   </dt>   <dd>  @@ -3071,7 +3084,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2009-02-14 08:18:09 UTC  +Last updated 2009-02-15 10:37:52 UTC   </div>   </div>   </body>  
diff --git a/git-diff-tree.html b/git-diff-tree.html index d519896..f79ae7c 100644 --- a/git-diff-tree.html +++ b/git-diff-tree.html 
@@ -1186,7 +1186,7 @@  </li>   <li>   <p>  -<em>%aN</em>: author name (respecting .mailmap)  +<em>%aN</em>: author name (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>)   </p>   </li>   <li>  @@ -1196,6 +1196,11 @@  </li>   <li>   <p>  +<em>%aE</em>: author email (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>)  +</p>  +</li>  +<li>  +<p>   <em>%ad</em>: author date (format respects --date= option)   </p>   </li>  @@ -1226,7 +1231,7 @@  </li>   <li>   <p>  -<em>%cN</em>: committer name (respecting .mailmap)  +<em>%cN</em>: committer name (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>)   </p>   </li>   <li>  @@ -1236,6 +1241,11 @@  </li>   <li>   <p>  +<em>%cE</em>: committer email (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>)  +</p>  +</li>  +<li>  +<p>   <em>%cd</em>: committer date   </p>   </li>  @@ -1931,7 +1941,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2009-02-14 08:18:13 UTC  +Last updated 2009-02-15 10:37:52 UTC   </div>   </div>   </body>  
diff --git a/git-filter-branch.html b/git-filter-branch.html index d24fbe7..6f97af4 100644 --- a/git-filter-branch.html +++ b/git-filter-branch.html 
@@ -683,6 +683,66 @@  mv $GIT_INDEX_FILE.new $GIT_INDEX_FILE' HEAD</tt></pre>   </div></div>   </div>  +<h2 id="_checklist_for_shrinking_a_repository">Checklist for Shrinking a Repository</h2>  +<div class="sectionbody">  +<div class="para"><p>git-filter-branch is often used to get rid of a subset of files,  +usually with some combination of <tt>--index-filter</tt> and  +<tt>--subdirectory-filter</tt>. People expect the resulting repository to  +be smaller than the original, but you need a few more steps to  +actually make it smaller, because git tries hard not to lose your  +objects until you tell it to. First make sure that:</p></div>  +<div class="ilist"><ul>  +<li>  +<p>  +You really removed all variants of a filename, if a blob was moved  + over its lifetime. <tt>git log --name-only --follow --all --  + filename</tt> can help you find renames.  +</p>  +</li>  +<li>  +<p>  +You really filtered all refs: use <tt>--tag-name-filter cat --  + --all</tt> when calling git-filter-branch.  +</p>  +</li>  +</ul></div>  +<div class="para"><p>Then there are two ways to get a smaller repository. A safer way is  +to clone, that keeps your original intact.</p></div>  +<div class="ilist"><ul>  +<li>  +<p>  +Clone it with <tt>git clone file:///path/to/repo</tt>. The clone  + will not have the removed objects. See <a href="git-clone.html">git-clone(1)</a>. (Note  + that cloning with a plain path just hardlinks everything!)  +</p>  +</li>  +</ul></div>  +<div class="para"><p>If you really don't want to clone it, for whatever reasons, check the  +following points instead (in this order). This is a very destructive  +approach, so <strong>make a backup</strong> or go back to cloning it. You have been  +warned.</p></div>  +<div class="ilist"><ul>  +<li>  +<p>  +Remove the original refs backed up by git-filter-branch: say <tt>git  + for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git  + update-ref -d</tt>.  +</p>  +</li>  +<li>  +<p>  +Expire all reflogs with <tt>git reflog expire --expire=now --all</tt>.  +</p>  +</li>  +<li>  +<p>  +Garbage collect all unreferenced objects with <tt>git gc --prune=now</tt>  + (or if your git-gc is not new enough to support arguments to  + <tt>--prune</tt>, use <tt>git repack -ad; git prune</tt> instead).  +</p>  +</li>  +</ul></div>  +</div>   <h2 id="_author">Author</h2>   <div class="sectionbody">   <div class="para"><p>Written by Petr "Pasky" Baudis &lt;pasky@suse.cz&gt;,  @@ -698,7 +758,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2009-02-14 08:18:17 UTC  +Last updated 2009-02-15 10:37:53 UTC   </div>   </div>   </body>  
diff --git a/git-filter-branch.txt b/git-filter-branch.txt index 1fbbbb4..7ffe03f 100644 --- a/git-filter-branch.txt +++ b/git-filter-branch.txt 
@@ -339,6 +339,47 @@  ---------------------------------------------------------------     + +Checklist for Shrinking a Repository +------------------------------------ + +git-filter-branch is often used to get rid of a subset of files, +usually with some combination of `\--index-filter` and +`\--subdirectory-filter`. People expect the resulting repository to +be smaller than the original, but you need a few more steps to +actually make it smaller, because git tries hard not to lose your +objects until you tell it to. First make sure that: + +* You really removed all variants of a filename, if a blob was moved + over its lifetime. `git log \--name-only \--follow \--all \-- + filename` can help you find renames. + +* You really filtered all refs: use `\--tag-name-filter cat \-- + \--all` when calling git-filter-branch. + +Then there are two ways to get a smaller repository. A safer way is +to clone, that keeps your original intact. + +* Clone it with `git clone +++file:///path/to/repo+++`. The clone + will not have the removed objects. See linkgit:git-clone[1]. (Note + that cloning with a plain path just hardlinks everything!) + +If you really don't want to clone it, for whatever reasons, check the +following points instead (in this order). This is a very destructive +approach, so *make a backup* or go back to cloning it. You have been +warned. + +* Remove the original refs backed up by git-filter-branch: say `git + for-each-ref \--format="%(refname)" refs/original/ | xargs -n 1 git + update-ref -d`. + +* Expire all reflogs with `git reflog expire \--expire=now \--all`. + +* Garbage collect all unreferenced objects with `git gc \--prune=now` + (or if your git-gc is not new enough to support arguments to + `\--prune`, use `git repack -ad; git prune` instead). + +  Author  ------  Written by Petr "Pasky" Baudis <pasky@suse.cz>, 
diff --git a/git-gc.html b/git-gc.html index 73a0133..e9c2876 100644 --- a/git-gc.html +++ b/git-gc.html 
@@ -320,7 +320,7 @@  </div>   <h2>SYNOPSIS</h2>   <div class="sectionbody">  -<div class="para"><p><em>git gc</em> [--aggressive] [--auto] [--quiet]</p></div>  +<div class="para"><p><em>git gc</em> [--aggressive] [--auto] [--quiet] [--prune=&lt;date&gt; | --no-prune]</p></div>   </div>   <h2 id="_description">DESCRIPTION</h2>   <div class="sectionbody">  @@ -378,6 +378,24 @@  automatic consolidation of packs.</p></div>   </dd>   <dt>  +--prune=&lt;date&gt;  +</dt>  +<dd>  +<p>  + Prune loose objects older than date (default is 2 weeks ago,  + overrideable by the config variable <tt>gc.pruneExpire</tt>). This  + option is on by default.  +</p>  +</dd>  +<dt>  +--no-prune  +</dt>  +<dd>  +<p>  + Do not prune any loose objects.  +</p>  +</dd>  +<dt>   --quiet   </dt>   <dd>  @@ -451,7 +469,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2009-02-14 08:18:18 UTC  +Last updated 2009-02-15 10:37:53 UTC   </div>   </div>   </body>  
diff --git a/git-gc.txt b/git-gc.txt index 7086eea..b292e98 100644 --- a/git-gc.txt +++ b/git-gc.txt 
@@ -8,7 +8,7 @@    SYNOPSIS  -------- -'git gc' [--aggressive] [--auto] [--quiet] +'git gc' [--aggressive] [--auto] [--quiet] [--prune=<date> | --no-prune]    DESCRIPTION  ----------- @@ -59,6 +59,14 @@  'git-repack'. Setting `gc.autopacklimit` to 0 disables  automatic consolidation of packs.   +--prune=<date>:: +	Prune loose objects older than date (default is 2 weeks ago, +	overrideable by the config variable `gc.pruneExpire`). This +	option is on by default. + +--no-prune:: +	Do not prune any loose objects. +  --quiet:: 	Suppress all progress reports.   
diff --git a/git-log.html b/git-log.html index 7370ef9..b502fb7 100644 --- a/git-log.html +++ b/git-log.html 
@@ -1887,7 +1887,7 @@  </li>   <li>   <p>  -<em>%aN</em>: author name (respecting .mailmap)  +<em>%aN</em>: author name (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>)   </p>   </li>   <li>  @@ -1897,6 +1897,11 @@  </li>   <li>   <p>  +<em>%aE</em>: author email (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>)  +</p>  +</li>  +<li>  +<p>   <em>%ad</em>: author date (format respects --date= option)   </p>   </li>  @@ -1927,7 +1932,7 @@  </li>   <li>   <p>  -<em>%cN</em>: committer name (respecting .mailmap)  +<em>%cN</em>: committer name (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>)   </p>   </li>   <li>  @@ -1937,6 +1942,11 @@  </li>   <li>   <p>  +<em>%cE</em>: committer email (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>)  +</p>  +</li>  +<li>  +<p>   <em>%cd</em>: committer date   </p>   </li>  @@ -2375,7 +2385,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2009-02-14 08:18:21 UTC  +Last updated 2009-02-15 10:37:54 UTC   </div>   </div>   </body>  
diff --git a/git-rev-list.html b/git-rev-list.html index 11eebb2..b3c312e 100644 --- a/git-rev-list.html +++ b/git-rev-list.html 
@@ -1450,7 +1450,7 @@  </li>   <li>   <p>  -<em>%aN</em>: author name (respecting .mailmap)  +<em>%aN</em>: author name (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>)   </p>   </li>   <li>  @@ -1460,6 +1460,11 @@  </li>   <li>   <p>  +<em>%aE</em>: author email (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>)  +</p>  +</li>  +<li>  +<p>   <em>%ad</em>: author date (format respects --date= option)   </p>   </li>  @@ -1490,7 +1495,7 @@  </li>   <li>   <p>  -<em>%cN</em>: committer name (respecting .mailmap)  +<em>%cN</em>: committer name (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>)   </p>   </li>   <li>  @@ -1500,6 +1505,11 @@  </li>   <li>   <p>  +<em>%cE</em>: committer email (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>)  +</p>  +</li>  +<li>  +<p>   <em>%cd</em>: committer date   </p>   </li>  @@ -1626,7 +1636,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2009-02-14 08:18:33 UTC  +Last updated 2009-02-15 10:37:54 UTC   </div>   </div>   </body>  
diff --git a/git-shortlog.html b/git-shortlog.html index 2eb7712..832dd1e 100644 --- a/git-shortlog.html +++ b/git-shortlog.html 
@@ -392,22 +392,42 @@  </dd>   </dl></div>   </div>  -<h2 id="_files">FILES</h2>  +<h2 id="_mapping_authors">MAPPING AUTHORS</h2>   <div class="sectionbody">  -<div class="para"><p>If a file <tt>.mailmap</tt> exists at the toplevel of the repository,  -it is used to map an author email address to a canonical real name. This  -can be used to coalesce together commits by the same person where their  -name was spelled differently (whether with the same email address or  -not).</p></div>  -<div class="para"><p>Each line in the file consists, in this order, of the canonical real name  -of an author, whitespace, and an email address (enclosed by <em>&lt;</em> and <em>&gt;</em>)  -to map to the name. Use hash <em>#</em> for comments, either on their own line,  -or after the email address.</p></div>  -<div class="para"><p>A canonical name may appear in more than one line, associated with  -different email addresses, but it doesn't make sense for a given address  -to appear more than once (if that happens, a later line overrides the  -earlier ones).</p></div>  -<div class="para"><p>So, for example, if your history contains commits by two authors, Jane  +<div class="para"><p>The <tt>.mailmap</tt> feature is used to coalesce together commits by the same  +person in the shortlog, where their name and/or email address was  +spelled differently.</p></div>  +<div class="para"><p>If the file <tt>.mailmap</tt> exists at the toplevel of the repository, or at  +the location pointed to by the mailmap.file configuration option, it  +is used to map author and committer names and email addresses to  +canonical real names and email addresses.</p></div>  +<div class="para"><p>In the simple form, each line in the file consists of the canonical  +real name of an author, whitespace, and an email address used in the  +commit (enclosed by <em>&lt;</em> and <em>&gt;</em>) to map to the name. Thus, looks like  +this</p></div>  +<div class="literalblock">  +<div class="content">  +<pre><tt>Proper Name &lt;commit@email.xx&gt;</tt></pre>  +</div></div>  +<div class="para"><p>The more complex forms are</p></div>  +<div class="literalblock">  +<div class="content">  +<pre><tt>&lt;proper@email.xx&gt; &lt;commit@email.xx&gt;</tt></pre>  +</div></div>  +<div class="para"><p>which allows mailmap to replace only the email part of a commit, and</p></div>  +<div class="literalblock">  +<div class="content">  +<pre><tt>Proper Name &lt;proper@email.xx&gt; &lt;commit@email.xx&gt;</tt></pre>  +</div></div>  +<div class="para"><p>which allows mailmap to replace both the name and the email of a  +commit matching the specified commit email address, and</p></div>  +<div class="literalblock">  +<div class="content">  +<pre><tt>Proper Name &lt;proper@email.xx&gt; Commit Name &lt;commit@email.xx&gt;</tt></pre>  +</div></div>  +<div class="para"><p>which allows mailmap to replace both the name and the email of a  +commit matching both the specified commit name and email address.</p></div>  +<div class="para"><p>Example 1: Your history contains commits by two authors, Jane   and Joe, whose names appear in the repository under several forms:</p></div>   <div class="listingblock">   <div class="content">  @@ -417,15 +437,38 @@  Jane Doe &lt;jane@laptop.(none)&gt;   Jane D. &lt;jane@desktop.(none)&gt;</tt></pre>   </div></div>  -<div class="para"><p>Then, supposing Joe wants his middle name initial used, and Jane prefers  -her family name fully spelled out, a proper <tt>.mailmap</tt> file would look like:</p></div>  +<div class="para"><p>Now suppose that Joe wants his middle name initial used, and Jane  +prefers her family name fully spelled out. A proper <tt>.mailmap</tt> file  +would look like:</p></div>   <div class="listingblock">   <div class="content">  -<pre><tt># Note how we don't need an entry for &lt;jane@laptop.(none)&gt;, because the  -# real name of that author is correct already, and coalesced directly.  -Jane Doe &lt;jane@desktop.(none)&gt;  +<pre><tt>Jane Doe &lt;jane@desktop.(none)&gt;   Joe R. Developer &lt;joe@example.com&gt;</tt></pre>   </div></div>  +<div class="para"><p>Note how we don't need an entry for &lt;jane@laptop.(none)&gt;, because the  +real name of that author is correct already.</p></div>  +<div class="para"><p>Example 2: Your repository contains commits from the following  +authors:</p></div>  +<div class="listingblock">  +<div class="content">  +<pre><tt>nick1 &lt;bugs@company.xx&gt;  +nick2 &lt;bugs@company.xx&gt;  +nick2 &lt;nick2@company.xx&gt;  +santa &lt;me@company.xx&gt;  +claus &lt;me@company.xx&gt;  +CTO &lt;cto@coompany.xx&gt;</tt></pre>  +</div></div>  +<div class="para"><p>Then, you might want a <tt>.mailmap</tt> file looking like:</p></div>  +<div class="listingblock">  +<div class="content">  +<pre><tt>&lt;cto@company.xx&gt; &lt;cto@coompany.xx&gt;  +Some Dude &lt;some@dude.xx&gt; nick1 &lt;bugs@company.xx&gt;  +Other Author &lt;other@author.xx&gt; nick2 &lt;bugs@company.xx&gt;  +Other Author &lt;other@author.xx&gt; &lt;nick2@company.xx&gt;  +Santa Claus &lt;santa.claus@northpole.xx&gt; &lt;me@company.xx&gt;</tt></pre>  +</div></div>  +<div class="para"><p>Use hash <em>#</em> for comments that are either on their own line, or after  +the email address.</p></div>   </div>   <h2 id="_author">Author</h2>   <div class="sectionbody">  @@ -441,7 +484,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2009-02-14 08:18:35 UTC  +Last updated 2009-02-15 10:37:55 UTC   </div>   </div>   </body>  
diff --git a/git-shortlog.txt b/git-shortlog.txt index 498bd28..42463a9 100644 --- a/git-shortlog.txt +++ b/git-shortlog.txt 
@@ -45,45 +45,16 @@ 	and subsequent lines are indented by `indent2` spaces. `width`, 	`indent1`, and `indent2` default to 76, 6 and 9 respectively.   -FILES ------   -If a file `.mailmap` exists at the toplevel of the repository, -it is used to map an author email address to a canonical real name. This -can be used to coalesce together commits by the same person where their -name was spelled differently (whether with the same email address or -not). +MAPPING AUTHORS +---------------   -Each line in the file consists, in this order, of the canonical real name -of an author, whitespace, and an email address (enclosed by '<' and '>') -to map to the name. Use hash '#' for comments, either on their own line, -or after the email address. +The `.mailmap` feature is used to coalesce together commits by the same +person in the shortlog, where their name and/or email address was +spelled differently.   -A canonical name may appear in more than one line, associated with -different email addresses, but it doesn't make sense for a given address -to appear more than once (if that happens, a later line overrides the -earlier ones). +include::mailmap.txt[]   -So, for example, if your history contains commits by two authors, Jane -and Joe, whose names appear in the repository under several forms: - ------------- -Joe Developer <joe@example.com> -Joe R. Developer <joe@example.com> -Jane Doe <jane@example.com> -Jane Doe <jane@laptop.(none)> -Jane D. <jane@desktop.(none)> ------------- - -Then, supposing Joe wants his middle name initial used, and Jane prefers -her family name fully spelled out, a proper `.mailmap` file would look like: - ------------- -# Note how we don't need an entry for <jane@laptop.(none)>, because the -# real name of that author is correct already, and coalesced directly. -Jane Doe <jane@desktop.(none)> -Joe R. Developer <joe@example.com> -------------    Author  ------ 
diff --git a/git-show.html b/git-show.html index f795548..7da832d 100644 --- a/git-show.html +++ b/git-show.html 
@@ -567,7 +567,7 @@  </li>   <li>   <p>  -<em>%aN</em>: author name (respecting .mailmap)  +<em>%aN</em>: author name (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>)   </p>   </li>   <li>  @@ -577,6 +577,11 @@  </li>   <li>   <p>  +<em>%aE</em>: author email (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>)  +</p>  +</li>  +<li>  +<p>   <em>%ad</em>: author date (format respects --date= option)   </p>   </li>  @@ -607,7 +612,7 @@  </li>   <li>   <p>  -<em>%cN</em>: committer name (respecting .mailmap)  +<em>%cN</em>: committer name (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>)   </p>   </li>   <li>  @@ -617,6 +622,11 @@  </li>   <li>   <p>  +<em>%cE</em>: committer email (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>)  +</p>  +</li>  +<li>  +<p>   <em>%cd</em>: committer date   </p>   </li>  @@ -860,7 +870,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2009-02-14 08:18:37 UTC  +Last updated 2009-02-15 10:37:55 UTC   </div>   </div>   </body>  
diff --git a/git-submodule.html b/git-submodule.html index eab861e..dbfcce8 100644 --- a/git-submodule.html +++ b/git-submodule.html 
@@ -324,7 +324,7 @@  <div class="content"><em>git submodule</em> [--quiet] add [-b branch] [--] &lt;repository&gt; &lt;path&gt;   <em>git submodule</em> [--quiet] status [--cached] [--] [&lt;path&gt;&#8230;]   <em>git submodule</em> [--quiet] init [--] [&lt;path&gt;&#8230;]  -<em>git submodule</em> [--quiet] update [--init] [--] [&lt;path&gt;&#8230;]  +<em>git submodule</em> [--quiet] update [--init] [-N|--no-fetch] [--] [&lt;path&gt;&#8230;]   <em>git submodule</em> [--quiet] summary [--summary-limit &lt;n&gt;] [commit] [--] [&lt;path&gt;&#8230;]   <em>git submodule</em> [--quiet] foreach &lt;command&gt;   <em>git submodule</em> [--quiet] sync [--] [&lt;path&gt;&#8230;]</div></div>  @@ -538,6 +538,18 @@  </p>   </dd>   <dt>  +-N  +</dt>  +<dt>  +--no-fetch  +</dt>  +<dd>  +<p>  + This option is only valid for the update command.  + Don't fetch new objects from the remote site.  +</p>  +</dd>  +<dt>   &lt;path&gt;&#8230;   </dt>   <dd>  @@ -567,7 +579,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2009-02-14 08:18:38 UTC  +Last updated 2009-02-15 10:37:55 UTC   </div>   </div>   </body>  
diff --git a/git-submodule.txt b/git-submodule.txt index 2f207fb..3b8df44 100644 --- a/git-submodule.txt +++ b/git-submodule.txt 
@@ -12,7 +12,7 @@  'git submodule' [--quiet] add [-b branch] [--] <repository> <path>  'git submodule' [--quiet] status [--cached] [--] [<path>...]  'git submodule' [--quiet] init [--] [<path>...] -'git submodule' [--quiet] update [--init] [--] [<path>...] +'git submodule' [--quiet] update [--init] [-N|--no-fetch] [--] [<path>...]  'git submodule' [--quiet] summary [--summary-limit <n>] [commit] [--] [<path>...]  'git submodule' [--quiet] foreach <command>  'git submodule' [--quiet] sync [--] [<path>...] @@ -172,6 +172,11 @@ 	(the default). This limit only applies to modified submodules. The 	size is always limited to 1 for added/deleted/typechanged submodules.   +-N:: +--no-fetch:: +	This option is only valid for the update command. +	Don't fetch new objects from the remote site. +  <path>...:: 	Paths to submodule(s). When specified this will restrict the command 	to only operate on the submodules found at the specified paths. 
diff --git a/git-whatchanged.html b/git-whatchanged.html index 791b890..af12e71 100644 --- a/git-whatchanged.html +++ b/git-whatchanged.html 
@@ -599,7 +599,7 @@  </li>   <li>   <p>  -<em>%aN</em>: author name (respecting .mailmap)  +<em>%aN</em>: author name (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>)   </p>   </li>   <li>  @@ -609,6 +609,11 @@  </li>   <li>   <p>  +<em>%aE</em>: author email (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>)  +</p>  +</li>  +<li>  +<p>   <em>%ad</em>: author date (format respects --date= option)   </p>   </li>  @@ -639,7 +644,7 @@  </li>   <li>   <p>  -<em>%cN</em>: committer name (respecting .mailmap)  +<em>%cN</em>: committer name (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>)   </p>   </li>   <li>  @@ -649,6 +654,11 @@  </li>   <li>   <p>  +<em>%cE</em>: committer email (respecting .mailmap, see <a href="git-shortlog.html">git-shortlog(1)</a> or <a href="git-blame.html">git-blame(1)</a>)  +</p>  +</li>  +<li>  +<p>   <em>%cd</em>: committer date   </p>   </li>  @@ -799,7 +809,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2009-02-14 08:18:42 UTC  +Last updated 2009-02-15 10:37:55 UTC   </div>   </div>   </body>  
diff --git a/mailmap.txt b/mailmap.txt new file mode 100644 index 0000000..e25b154 --- /dev/null +++ b/mailmap.txt 
@@ -0,0 +1,75 @@ +If the file `.mailmap` exists at the toplevel of the repository, or at +the location pointed to by the mailmap.file configuration option, it +is used to map author and committer names and email addresses to +canonical real names and email addresses. + +In the simple form, each line in the file consists of the canonical +real name of an author, whitespace, and an email address used in the +commit (enclosed by '<' and '>') to map to the name. Thus, looks like +this +-- +	Proper Name <commit@email.xx> +-- + +The more complex forms are +-- +	<proper@email.xx> <commit@email.xx> +-- +which allows mailmap to replace only the email part of a commit, and +-- +	Proper Name <proper@email.xx> <commit@email.xx> +-- +which allows mailmap to replace both the name and the email of a +commit matching the specified commit email address, and +-- +	Proper Name <proper@email.xx> Commit Name <commit@email.xx> +-- +which allows mailmap to replace both the name and the email of a +commit matching both the specified commit name and email address. + +Example 1: Your history contains commits by two authors, Jane +and Joe, whose names appear in the repository under several forms: + +------------ +Joe Developer <joe@example.com> +Joe R. Developer <joe@example.com> +Jane Doe <jane@example.com> +Jane Doe <jane@laptop.(none)> +Jane D. <jane@desktop.(none)> +------------ + +Now suppose that Joe wants his middle name initial used, and Jane +prefers her family name fully spelled out. A proper `.mailmap` file +would look like: + +------------ +Jane Doe <jane@desktop.(none)> +Joe R. Developer <joe@example.com> +------------ + +Note how we don't need an entry for <jane@laptop.(none)>, because the +real name of that author is correct already. + +Example 2: Your repository contains commits from the following +authors: + +------------ +nick1 <bugs@company.xx> +nick2 <bugs@company.xx> +nick2 <nick2@company.xx> +santa <me@company.xx> +claus <me@company.xx> +CTO <cto@coompany.xx> +------------ + +Then, you might want a `.mailmap` file looking like: +------------ +<cto@company.xx> <cto@coompany.xx> +Some Dude <some@dude.xx> nick1 <bugs@company.xx> +Other Author <other@author.xx> nick2 <bugs@company.xx> +Other Author <other@author.xx> <nick2@company.xx> +Santa Claus <santa.claus@northpole.xx> <me@company.xx> +------------ + +Use hash '#' for comments that are either on their own line, or after +the email address. \ No newline at end of file 
diff --git a/pretty-formats.txt b/pretty-formats.txt index 3d87d3e..159390c 100644 --- a/pretty-formats.txt +++ b/pretty-formats.txt 
@@ -101,16 +101,18 @@  - '%P': parent hashes  - '%p': abbreviated parent hashes  - '%an': author name -- '%aN': author name (respecting .mailmap) +- '%aN': author name (respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1])  - '%ae': author email +- '%aE': author email (respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1])  - '%ad': author date (format respects --date= option)  - '%aD': author date, RFC2822 style  - '%ar': author date, relative  - '%at': author date, UNIX timestamp  - '%ai': author date, ISO 8601 format  - '%cn': committer name -- '%cN': committer name (respecting .mailmap) +- '%cN': committer name (respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1])  - '%ce': committer email +- '%cE': committer email (respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1])  - '%cd': committer date  - '%cD': committer date, RFC2822 style  - '%cr': committer date, relative